home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 1992 August / info-mac-1992.iso / Applications (app) / Ray Tracer / drawit.c < prev    next >
C/C++ Source or Header  |  1989-04-28  |  1KB  |  54 lines

  1. /*
  2.     By Jason Castan - reads in a file called data.dis that was
  3.     created by the ray tracer and then draws it. Needs colorQD to run.
  4. */
  5.  
  6. #include "color.h"
  7. #include "stdio.h"
  8. #include "windowmgr.h"
  9.  
  10. #define X    0
  11. #define    Y    1
  12. main()
  13. {
  14. register FILE *f;
  15. int dim[2];
  16. register int c;
  17. register int Xpos = 0, Ypos = 0;
  18. RGBColor rgb;
  19. Rect        bnds;
  20. WindowPtr    wind;
  21. PaletteHandle    mp;
  22. register    CTabPtr            mtab; 
  23.  
  24.     InitGraf(&thePort);
  25.     InitWindows();
  26.     SetRect(&bnds, 30, 30, 460, 400);
  27.     mp = GetNewPalette(999);
  28.     if (mp == 0L) ExitToShell();
  29.     wind = (WindowPtr) NewCWindow(0L,&bnds,"\phi",1,altDBoxProc,0L,TRUE,0L);
  30.     SetPalette(wind, mp, TRUE);
  31.     ActivatePalette(wind);
  32.     if (GetPalette(wind) == 0L) ExitToShell();
  33.     SetPort(wind);
  34.     f = fopen("data.dis","rb");
  35.     if (f == NULL) return;
  36.     if (! fread(&dim,sizeof(int),2,f)) goto end;
  37.  
  38.     SetRect(&bnds, 30, 230, 40, 240);
  39.     mtab = (**mp).pmInfo;
  40.     while ((c = fgetc(f)) != EOF) {
  41.         if (Xpos >= 420 /*dim[X]*/) {
  42.             Xpos = 0;
  43.             Ypos++;
  44.             }
  45.         if (Ypos >= dim[Y]) break;
  46.         if (c != 0) {
  47.             SetCPixel(Xpos, Ypos, &( mtab[c]));
  48.             }
  49.         Xpos++;
  50.         }
  51.     while (!Button());
  52. end:
  53.     fclose(f);    
  54. }